
public class Utilidades {
	
	//metodo que recoge array de Strings. calcula media de longitud de nombres y muestra nombres compuestos
	public static void Nombres (String nombres []) {
		
		//calculo la media de longitud de los nombres
		double media = (nombres[0].length() + nombres[1].length() + nombres[2].length() + nombres[3].length() + nombres[4].length()) / nombres.length;
		
		System.out.println("La media de los nombres del array es: "+media);
		int cont = 0;
		
		//recorro el array en busca de nombres compuestos
		for (int i = 0; i < nombres.length; i++) {
			
			//si la posicion [i] contiene un espacio, imprimo el contenido de la posicion y sumo uno al contador
			if (nombres[i].contains(" ")) {
				System.out.println("Nombre compuesto "+(cont+1)+" "+nombres[i]);
				cont++;
			}		
		}
		
		//si el contador sigue siendo 0 (no hay nombres compuestos), el mensaje cambia
		if (cont == 0) {
			System.out.println("No hay nombres compuestos");
		}
	}
	
	//metodo que recoge un numero entero y devuelve true si el numero es omirp (es primo y dado la vuelta es primo tambien)
	public static boolean Omirp (int numero) {
		boolean esomirp, esprimo1, esprimo2;
		int numero1 = numero, numero2, cont = 0;
		
		//declaro 2 Strings. uno para pasar numero1 a String y el otro para concatenar caracteres inversos de numero1 (lo inicializo vacio)
		String numero1Str, numero2Str = "";
		numero1Str = String.valueOf(numero1);
		
		//recorro el String en orden inverso y concateno los caracteres en la variable numero2Str
		for (int e = numero1Str.length() - 1; e >= 0; e--) {
			numero2Str += numero1Str.charAt(e);
		}	
		
		//paso a entero el valor del String numero2Str y lo asigno a numero2
		numero2 = Integer.parseInt(numero2Str);
		
		//calculo si el numero1 es primo
		for (int i = 2; i < numero1; i++) {
			if (numero1 % i == 0) {
				cont++;				
			}
		}
		if (cont == 0) {
			esprimo1 = true;
		}
		else {
			esprimo1 = false;
		}
		
		//reinicio la variable cont a 0 para volver a hacer el calculo anterior 
		cont = 0;
		
		//calculo si el numero2 es primo
		for (int i = 2; i < numero2; i++) {
			if (numero2 % i == 0) {
				cont++;				
			}
		}
		if (cont == 0) {
			esprimo2 = true;
		}
		else {
			esprimo2 = false;
		}
		
		//si numero1 Y numero2 son primos, el numero sera OMIRP
		if (esprimo1 == true && esprimo2 == true) {
			esomirp = true;
		}
		else {
			esomirp = false;
		}		
		
		//retorno el valor booleano
		return esomirp;
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String nombres [] = {"Juan", "Jose", "Jose Antonio", "Maria", "Pedro Jose"};
		Utilidades.Nombres(nombres);
		System.out.println(Utilidades.Omirp(1237));
	}
}
